gsk: Fix a crash in gsk_render_node_diff
authorMatthias Clasen <mclasen@redhat.com>
Sun, 21 Jul 2019 20:18:58 +0000 (13:18 -0700)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 21 Jul 2019 20:18:58 +0000 (13:18 -0700)
The only thing worse than freeing the same
cairo region twice is freeing it three times.

gsk/gskrendernodeimpl.c

index d08ca9073a969ca4bf27462188274e702d1f8a78..13e953ee2e45893f68a5e0b3a3b0b121625727b7 100644 (file)
@@ -1966,14 +1966,14 @@ gsk_transform_node_diff (GskRenderNode  *node1,
             cairo_region_t *tmp = cairo_region_copy (sub);
             cairo_region_translate (tmp, 1, 0);
             cairo_region_union (sub, tmp);
-            cairo_region_destroy (sub);
+            cairo_region_destroy (tmp);
           }
         if (floor (dy) != dy)
           {
             cairo_region_t *tmp = cairo_region_copy (sub);
             cairo_region_translate (tmp, 0, 1);
             cairo_region_union (sub, tmp);
-            cairo_region_destroy (sub);
+            cairo_region_destroy (tmp);
           }
         cairo_region_union (region, sub);
         cairo_region_destroy (sub);